package org.jinyan.d20140421;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class ArrayListTest {

	public static void main(String[] args) {
		ArrayList list = new ArrayList();

		list.add("a");
		list.add("b");
		list.add("c");
		list.add("d");
		list.add("a");
		list.add("b");
		list.add("c");
		list.add("d");
		list.add("a");
		list.add("b");
		list.add("c");
		list.add("c");
		list.add("c");
		list.add("c");
		list.add("c");

	//	list.remove("c");
		System.out.println(list.toString());
		removeListElement3(list, "c");
		System.out.println(list.toString());
	}

	public static void removeListElement1(List list, Object vo) {
		for (int i = 0; i < list.size(); i++) {
			System.out.println(list.size() + "_" + i);
			if (vo.equals(list.get(i))) {
				list.remove(i);
			}
		}

	}

	public static void removeListElement2(List list, Object vo) {
		for (int i = 0; i < list.size(); i++) {
			System.out.println(list.size() + "_" + i);
			if (vo.equals(list.get(i))) {
				list.remove(i);
				--i;
			}
		}
	}

	public static void removeListElement3(List list, Object vo) {
	  Iterator<?> it = list.iterator();
	  while(it.hasNext()){
		  Object ovTemp = it.next();
		  if(ovTemp.equals(vo)){
			  it.remove();
		  }
	  }
	}

}
